<?php
/**
 * @package		orcamento	
 * @desc		Componente voltado to listar produtor e entreoutros
 * @author	    Lucas Emmanoel Araujo Machado (lucasemmanoel@gmail.com).
 * @since		2011-04-10	
 * @abstract	Model do Componente
 */

// Não permite o acesso direto ao arquivo.
defined( '_JEXEC' ) or die( 'Restricted access' );

// Recursos Joomla! para trabalhar com models.
jimport( 'joomla.application.component.model' );

class OrcamentosModelCategoria extends JModel
{
	/*
	 * Constructor (recupera o valor do ID)
	 */
	function __construct( )
	{
		parent::__construct( );

		$array = JRequest::getVar( 'cid',  0, '', 'array' );
		$this->setId( ( int )$array[ 0 ] );
	}
	
	function setId( $id )
	{
		// Define o ID e a variável dos dados.
		$this->_id		= $id;
		$this->_data	= null;
	}
	
	function &getRegistro( )
	{
		// Load the data
		if ( empty( $this->_data ) )
		{
			$query = ' SELECT * FROM #__orcamento_categoria'.
					'  WHERE id = '.$this->_id;
			$this->_db->setQuery( $query );
			$this->_data = $this->_db->loadObject( );
		}
		if ( !$this->_data )
		{
			$this->_data = new stdClass( );
			$this->_data->id = 0;
			$this->_data->nome = null;
		}
		
		return $this->_data;
	}


	// Método para armazenar os dado no banco de dados
	function store( $data )
	{
		$data['descricao'] = $data['descricao'][0];
		// recupera instancia do banco de dados
		$row =& $this->getTable( 'categoria'  );
		
		// Passa os dados do form para a table
		if ( !$row->bind( $data ) ) {
			$this->setError( $row->getErrorMsg( ) );
			return false;
		}

		// Checa consistencia dos dados
		if ( !$row->check( ) ) {
			$this->setError( $row->getErrorMsg( ) );
			return false;
		}
		// Salva os dados no banco de dados
		if ( !$row->store( ) ) {
			$this->setError( $row->getErrorMsg( ) );
			return false;
		}

		return true;
	}

	// Método para deletar dados do banco de dados
	function delete( )
	{
		// Recupera id(s) que será(ão) deletados
		$cids = JRequest::getVar( 'cid', array( 0 ), 'post', 'array' );
		// Recupera instancia do banco de dados
		$row =& $this->getTable( 'categoria'  );

		if ( count( $cids ) ) {
			foreach( $cids as $cid ) {
				if ( !$row->delete( $cid ) ) {
					$this->setError( $row->getError( ) );
					return false;
				}
			}
		}
		return true;
	}
}
